package com.ruoyi.riskrule.mapper;

import com.ruoyi.bizsys.domain.AppDeviceInfo;
import com.ruoyi.bizsys.domain.CreditApply;
import com.ruoyi.bizsys.domain.RealNameAuth;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;
import java.util.Set;

/**
 * @Author: Jamnsin
 * @Date: 2021/3/11 4:43 下午
 */
@Mapper
public interface CreditFieldMapper {

    //历史授信拒绝次数
    public int getCntCreditReject(@Param("userId") String userId);

    //30天内授信拒绝次数
    public int getCntCreditReject30(@Param("userId") String userId);

    //根据实名BVN手机号查询关联的bvn账号总数
    public int getCntBvn(@Param("bvnPhone") String bvnPhone);

    //根据实名BVN手机号查询关联的bvn账号总数
    public int getCstMcntMail(@Param("email") String email);

    //最近60天授信申请次数
    public int getCntCredit60Days(@Param("userId") String userId);

    //最近60天提现申请次数
    public int getCntApply60Days(@Param("userId") String userId);

    //历史提现拒绝次数
    public int getCntWithdrawReject(@Param("userId") String userId);

    //客户关联的IMEI个数
    public int getCntImei(@Param("fingerprint") String fingerprint);

    //设备关联用户数(包括本人)
    public int getCntDevice(@Param("fingerprint") String fingerprint);

    //用户通讯录联系人总数
    public int getCntContactsNum(@Param("userId") String userId, @Param("applyNo") String applyNo);

    //申请设备含贷款指引关键字APP个数
    int deviceKeywordByLoanGuideline(@Param("applyNo") String applyNo);

    //申请设备含坏信用关键字APP个数
    int deviceKeywordByBarCredit(@Param("applyNo") String applyNo);

    //联系人手机号码是否匹配通讯录号码
    int familycontactInContact(@Param("userId") String userId, @Param("contactPhone") String contactPhone);

    //最近已审批的订单
    CreditApply getApprovedRecentResult(@Param("userId") String userId);

    //当前提现申请距该客户最近一次授信申请的时间
    int getLastTimeInterval(@Param("custNo") String custNo);

    /**
     * 获取所有逾期客户的实名信息
     *
     * @return
     */
    List<Map<String, String>> getOverdueRealNames();

    int getCntwifino(@Param("wifiName") String wifiName,@Param("countryState") String countryState);

    int getCntwifiodno(@Param("wifiName") String wifiName,@Param("countryState") String countryState);

    int getCntgpsno(@Param("longitude")String longitude,@Param("latitude") String latitude);

    int getCntgpsodno(@Param("longitude")String longitude,@Param("latitude") String latitude);

    int getUseDistinctFingerprint(@Param("userId")String userId);

    int getUseDistinctNewFingerprint(@Param("userId")String userId,@Param("table") String table,@Param("deviceType")String deviceType);

    String fingerprintRelationCustNum(@Param("fingerprint")String fingerprint,@Param("table")String table,@Param("deviceType")String deviceType);

    String getFristcountrystate(@Param("userId") String userId);

    int getImeiCutCount(@Param("imeis") String[] imeis);

    int custNumByNewFingerprint(@Param("userId")String userId,@Param("table") String table,@Param("deviceType") String deviceType);

    int custNumByFingerprint(@Param("userId")String userId);

    Map<String, Integer> getCreditApplyNums(String userId);

    String getOverdueFlagByUserId(String userUuid);

    String getDeviceFirstVersion(@Param("userId") String userId);

    String getCntcontactRelation(@Param("contactPhone") String contactPhone);
}
